function AdvisorPiece()
{
    this.m_boardPos = new Point(0, 0);
    this.m_drawPos = new Point(0, 0);
    this.m_isActive = true;
    this.m_isSelected = false;
    this.m_isRedSide = false;
    this.m_selectedImage = new Image();
    this.m_imageChessPiece = new Image;
}

AdvisorPiece.prototype = new ChessPiece();

AdvisorPiece.prototype.CanMoveTo = function(currPos, newPos)
{
    return BasicRule.CanAdvisorMoveTo(currPos, newPos);
}

AdvisorPiece.prototype.GetPotentialNextPositions = function (posList, pos) {
    posList = [];

    // ... Simply use the 4 possible positions.
    posList.push(new Point(pos.GetY() - 1, pos.GetX() - 1));
    posList.push(new Point(pos.GetY() - 1, pos.GetX() + 1));
    posList.push(new Point(pos.GetY() + 1, pos.GetX() - 1));
    posList.push(new Point(pos.GetY() + 1, pos.GetX() + 1));

    return posList;
}